package com.financing.wap.dao;



import java.util.List;
import java.util.Map;

import com.financing.wap.dto.AccountCorpDTO;
import com.financing.wap.dto.AccountDetailDTO;
import com.financing.wap.vo.AccountCorpVo;
import com.financing.wap.vo.AccountDetailVo;
import com.financing.wap.vo.AmountVO;





public interface IAccountDao extends IBaseDao<AccountCorpDTO, Integer> {

	
	/**
	 * 获取机构账户
	 * @param corpId
	 * @return
	 */
	public AccountCorpDTO getAccountCorpInfo(AccountCorpVo vo);
	
	
	/**
	 * 账户详情列表
	 * @param corpId
	 * @return
	 */
	public List<AccountCorpDTO> getAccountDetailCorpList(AccountCorpVo vo);
	
	/**
	 * 账户详情条目数
	 * @param corpId
	 * @return
	 */
	public int getAccountDetailCorpCount(AccountCorpVo vo);
	
	
	/**
	 * 根据用户Id获取账户详情
	 * @param id
	 * @return
	 */
	public AccountCorpDTO getFaAccountByUserId(String id);
	
	/**
	 * 根据用户Id获取账户详情
	 * @param id
	 * @return
	 */
	public Integer updateAccountBalanceActivity(AccountCorpDTO dto);
	
	/**
	 * 
	* @Title: addAccount 
	* @Description: 添加用户账户信息
	* @param   userId
	* @return Integer   
	* @throws
	 */
	public Boolean addAccount(AccountCorpDTO account);
	
	
	/**
	 * 机构下属FA销售业绩
	 * @param corpId
	 * @return
	 */
	public  List<Map<String,Object>>  getCorpUserAmount(AmountVO queryVo);
	
	/**
	 * 机构下属FA销售业绩(记录总数)
	 * @param corpId
	 * @return
	 */
	public Integer getCorpUserAmountCount(AmountVO queryVo);
		
	/**
	 * 机构销售业绩
	 * @param corpId
	 * @return
	 */
	public Map<String,Object> getCorpAllAmount(String corpId);
	
	/**
	 * 机构部门销售业绩
	 * @param corpId
	 * @return
	 */
	public List<Map<String,Object>> getCorpDeptAmount(String corpId);
	
	/**
	 * 个人账户明细记录数
	 * @param corpId
	 * @return
	 */
	public Integer getUserAccountDetailCount(AccountDetailVo queryVo);
	
	/**
	 * 个人账户明细列表
	 * @param corpId
	 * @return
	 */
	public List<AccountDetailDTO> getUserAccountDetailList(AccountDetailVo queryVo);
	
	/**
	 * 新增用户账号明细
	 * @param dto
	 * @return
	 */
	public Integer addUserAccountDetail(AccountDetailDTO dto);
	
}
